package chapter02;

public class SetZeroes73 {
    /**
     * 用两个数组row和col分别记录行和列是否需要变为0
     * 遍历matrix[i][j]
     * 如果matrix[i][j]==0  i行j列都需要变为0
     *  row[i]=col[j]=1
     * 那么我们只需遍历matrix[i][j]
     *  如果row[i]==1||col[j]==1 表明此时所在的i行和j列需要变为0
     *  就将matrix[i][j]置为0
     */
    public void setZeroes(int[][] matrix) {
        int[] row=new int[matrix.length];
        int[] col=new int[matrix[0].length];
        for(int i=0;i<row.length;i++){
            for(int j=0;j<col.length;j++){
                if(matrix[i][j]==0){
                    row[i]=col[j]=1;
                }
            }
        }
        for(int i=0;i<row.length;i++){
            for(int j=0;j<col.length;j++){
                if(row[i]==1||col[j]==1){
                    matrix[i][j]=0;
                }
            }
        }
    }
}
